// 处理token是否过期的中间件
const jwt = require('jsonwebtoken')
const { secret } = require('../constant')
function authMiddleware(req, res, next) {
    // 获取客户端发送的token
    const token = req.headers.authorization?.split(' ')[1]
    if (!token) {
        // 不存在token
        return res
            .status(401)
            .json({ message: '权限验证失败:未发现token,请重新登录' })
    } else {
        // 否则发现token，但是要验证token是否有效
        try {
            // 通过secret解密
            const decoded = jwt.verify(token, secret)
            req.user = decoded
            // 通过了则进行下一步操作
            next()
        } catch (err) {
            // token失效
            return res
                .status(401)
                .json({ message: '权限验证失败:token过期,请重新登录' })
        }
    }
}
module.exports = authMiddleware
